<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>single_nubot_gazebo: src/nubot_simulation/nubot_gazebo/plugins/nubot_gazebo.hh Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">single_nubot_gazebo
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_93262b1c7483f4ea8c70e946e7488dda.html">src</a></li><li class="navelem"><a class="el" href="dir_5c8239e7b7b2cf16536d22ea0622a6d7.html">nubot_simulation</a></li><li class="navelem"><a class="el" href="dir_199e0a8cbaaf0f78ee8cbae20dd0bf35.html">nubot_gazebo</a></li><li class="navelem"><a class="el" href="dir_50d0c6ed3c320c7a2ca9ede4b6ff1b42.html">plugins</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">nubot_gazebo.hh</div>  </div>
</div><!--header-->
<div class="contents">
<a href="nubot__gazebo_8hh.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef NUBOT_GAZEBO_HH</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define NUBOT_GAZEBO_HH</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;boost/bind.hpp&gt;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;gazebo/gazebo.hh&gt;</span>             <span class="comment">// the core gazebo header files, including gazebo/math/gzmath.hh</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &lt;gazebo/physics/physics.hh&gt;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;gazebo/common/common.hh&gt;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;gazebo/common/Plugin.hh&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;gazebo/common/Events.hh&gt;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;</div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;ros/callback_queue.h&gt;</span>         <span class="comment">// Custom Callback Queue</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;ros/subscribe_options.h&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;gazebo_msgs/ModelStates.h&gt;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;gazebo_msgs/ModelState.h&gt;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="VelCmd_8h.html">nubot_common/VelCmd.h</a>&quot;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Shoot_8h.html">nubot_common/Shoot.h</a>&quot;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="BallHandle_8h.html">nubot_common/BallHandle.h</a>&quot;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;ros/ros.h&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;boost/thread.hpp&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;boost/thread/mutex.hpp&gt;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="core_8hpp.html">nubot/core/core.hpp</a>&quot;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="NubotGazeboConfig_8h.html">nubot_gazebo/NubotGazeboConfig.h</a>&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;dynamic_reconfigure/server.h&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="nubot__PID_8hh.html">nubot_PID.hh</a>&quot;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="parabolic__transition__planning_8hh.html">parabolic_transition_planning.hh</a>&quot;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953b">   33</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953b">nubot_state</a></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;{</div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953ba11f40e487a9654ac3bd15a1463898275">   35</a></span>&#160;    <a class="code" href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953ba11f40e487a9654ac3bd15a1463898275">CHASE_BALL</a>,</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953babc8e41c2d63243ae782d425719dd355c">   36</a></span>&#160;    <a class="code" href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953babc8e41c2d63243ae782d425719dd355c">DRIBBLE_BALL</a>,</div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953ba2fc2989f8c52255c003e122db39b885e">   37</a></span>&#160;    <a class="code" href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953ba2fc2989f8c52255c003e122db39b885e">KICK_BALL</a>,</div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953ba589b7d94a3d91d145720e2fed0eb3a05">   38</a></span>&#160;    <a class="code" href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953ba589b7d94a3d91d145720e2fed0eb3a05">RESET</a>,</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953ba8f280224da64e98f2d52d50ec43bc197">   39</a></span>&#160;    <a class="code" href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953ba8f280224da64e98f2d52d50ec43bc197">HOME</a></div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;};</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="nubot__gazebo_8hh.html#a503a2f01f9f49bd293d3c44faf21b528">   42</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="nubot__gazebo_8hh.html#a503a2f01f9f49bd293d3c44faf21b528">nubot_substate</a></div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;{</div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="nubot__gazebo_8hh.html#a503a2f01f9f49bd293d3c44faf21b528a34c99321316fe6ceed43466e9627a0c5">   44</a></span>&#160;    <a class="code" href="nubot__gazebo_8hh.html#a503a2f01f9f49bd293d3c44faf21b528a34c99321316fe6ceed43466e9627a0c5">MOVE_BALL</a>,</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="nubot__gazebo_8hh.html#a503a2f01f9f49bd293d3c44faf21b528abdcb91b3f5374a0c1d9e7325816dc93c">   45</a></span>&#160;    <a class="code" href="nubot__gazebo_8hh.html#a503a2f01f9f49bd293d3c44faf21b528abdcb91b3f5374a0c1d9e7325816dc93c">ROTATE_BALL</a></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;};</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="namespacegazebo.html">   48</a></span>&#160;<span class="keyword">namespace </span>gazebo{</div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structgazebo_1_1Pose.html">   51</a></span>&#160;   <span class="keyword">struct </span><a class="code" href="structgazebo_1_1Pose.html">Pose</a></div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;   {</div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structgazebo_1_1Pose.html#adf6e7e054dc466c6cd74592b743a7a76">   53</a></span>&#160;       math::Vector3    <a class="code" href="structgazebo_1_1Pose.html#adf6e7e054dc466c6cd74592b743a7a76">position</a>;</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structgazebo_1_1Pose.html#a561aa831b8b83248778e9a977fa92d74">   54</a></span>&#160;       math::Quaternion <a class="code" href="structgazebo_1_1Pose.html#a561aa831b8b83248778e9a977fa92d74">orientation</a>;</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;   };</div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structgazebo_1_1Twist.html">   56</a></span>&#160;   <span class="keyword">struct </span><a class="code" href="structgazebo_1_1Twist.html">Twist</a></div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;   {</div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structgazebo_1_1Twist.html#afbb8ffd807cad3c63479f4624b192301">   58</a></span>&#160;       math::Vector3    <a class="code" href="structgazebo_1_1Twist.html#afbb8ffd807cad3c63479f4624b192301">linear</a>;</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="structgazebo_1_1Twist.html#a7d2c10e52786244a11d3b94486313cd0">   59</a></span>&#160;       math::Vector3    <a class="code" href="structgazebo_1_1Twist.html#a7d2c10e52786244a11d3b94486313cd0">angular</a>;</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;   };</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structgazebo_1_1model__state.html">   62</a></span>&#160;   <span class="keyword">struct </span><a class="code" href="structgazebo_1_1model__state.html">model_state</a></div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;   {</div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structgazebo_1_1model__state.html#a796837a0feaa387282fac7735cf6cf56">   64</a></span>&#160;       std::string <a class="code" href="structgazebo_1_1model__state.html#a796837a0feaa387282fac7735cf6cf56">model_name</a>;</div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structgazebo_1_1model__state.html#a59c702ff3b33ef414d90cdcb873bad94">   65</a></span>&#160;       <a class="code" href="structgazebo_1_1Pose.html">Pose</a>        <a class="code" href="structgazebo_1_1model__state.html#a59c702ff3b33ef414d90cdcb873bad94">pose</a>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structgazebo_1_1model__state.html#a60485b3f1187365afb7fb0105063b4ec">   66</a></span>&#160;       <a class="code" href="structgazebo_1_1Twist.html">Twist</a>       <a class="code" href="structgazebo_1_1model__state.html#a60485b3f1187365afb7fb0105063b4ec">twist</a>;</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structgazebo_1_1model__state.html#a22787f252a57adeadc5983b5127c1027">   67</a></span>&#160;       std::string <a class="code" href="structgazebo_1_1model__state.html#a22787f252a57adeadc5983b5127c1027">reference_frame</a>;</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;   };                                       <span class="comment">// similar to the type gazebo_msgs::ModelState;</span></div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                                            <span class="comment">// use these structs for easy handling of model states.</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html">   70</a></span>&#160;  <span class="keyword">class </span><a class="code" href="classgazebo_1_1NubotGazebo.html">NubotGazebo</a> : <span class="keyword">public</span> ModelPlugin</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;  {      </div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="keyword">private</span>:</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#aa56e5c10cfbbc981460ab1bcc204d071">   74</a></span>&#160;        physics::WorldPtr           <a class="code" href="classgazebo_1_1NubotGazebo.html#aa56e5c10cfbbc981460ab1bcc204d071">world_</a>;             <span class="comment">// A pointer to the gazebo world.</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#ac7f22b4b498327d11697f07cb064e460">   75</a></span>&#160;        physics::ModelPtr           <a class="code" href="classgazebo_1_1NubotGazebo.html#ac7f22b4b498327d11697f07cb064e460">nubot_model_</a>;       <span class="comment">// Pointer to the model</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a76897836db2bb2e49c75fbf64b4b9aeb">   76</a></span>&#160;        physics::ModelPtr           <a class="code" href="classgazebo_1_1NubotGazebo.html#a76897836db2bb2e49c75fbf64b4b9aeb">football_model_</a>;    <span class="comment">// Pointer to the football</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a191e11ef5a0b3e6275c3938ad61cec0a">   77</a></span>&#160;        physics::LinkPtr            <a class="code" href="classgazebo_1_1NubotGazebo.html#a191e11ef5a0b3e6275c3938ad61cec0a">football_link_</a>;     <span class="comment">//Pointer to the football link</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a97a021a147d45134fe79ab21531e55df">   78</a></span>&#160;        physics::LinkPtr            <a class="code" href="classgazebo_1_1NubotGazebo.html#a97a021a147d45134fe79ab21531e55df">nubot_link_</a>;</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        </div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a310c7df239fab0570dbdc82d4552ec6d">   80</a></span>&#160;        ros::NodeHandle*            <a class="code" href="classgazebo_1_1NubotGazebo.html#a310c7df239fab0570dbdc82d4552ec6d">rosnode_</a>;           <span class="comment">// A pointer to the ROS node. </span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a7b758780795b0406d06bf5db5122dbe2">   81</a></span>&#160;        ros::Subscriber             <a class="code" href="classgazebo_1_1NubotGazebo.html#a7b758780795b0406d06bf5db5122dbe2">ModelStates_sub_</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a6264896320559e214ac33d820c44b357">   82</a></span>&#160;        ros::Subscriber             <a class="code" href="classgazebo_1_1NubotGazebo.html#a6264896320559e214ac33d820c44b357">Velcmd_sub_</a>;</div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#af8abc682c8dc7cad7d29d131901aec05">   83</a></span>&#160;        ros::ServiceServer          <a class="code" href="classgazebo_1_1NubotGazebo.html#af8abc682c8dc7cad7d29d131901aec05">ballhandle_server_</a>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#afd3e6ab82580823e83d84433dac19e86">   84</a></span>&#160;        ros::ServiceServer          <a class="code" href="classgazebo_1_1NubotGazebo.html#afd3e6ab82580823e83d84433dac19e86">shoot_server_</a>;</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#ae985620428222dd9b1b5f507339119b8">   86</a></span>&#160;        boost::thread               <a class="code" href="classgazebo_1_1NubotGazebo.html#ae985620428222dd9b1b5f507339119b8">message_callback_queue_thread_</a>;     <span class="comment">// Thead object for the running callback Thread.</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a0c0bc3e99d501d7fcac319848006f87c">   87</a></span>&#160;        boost::thread               <a class="code" href="classgazebo_1_1NubotGazebo.html#a0c0bc3e99d501d7fcac319848006f87c">service_callback_queue_thread_</a>;</div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a70f7775e1670311efc2aad7c306a3077">   88</a></span>&#160;        boost::mutex                <a class="code" href="classgazebo_1_1NubotGazebo.html#a70f7775e1670311efc2aad7c306a3077">msgCB_lock_</a>;        <span class="comment">// A mutex to lock access to fields that are used in ROS message callbacks</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a6b3d2a253732eedfcf18e0223435bed0">   89</a></span>&#160;        boost::mutex                <a class="code" href="classgazebo_1_1NubotGazebo.html#a6b3d2a253732eedfcf18e0223435bed0">srvCB_lock_</a>;        <span class="comment">// A mutex to lock access to fields that are used in ROS service callbacks</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a7186c914f81602db7bd347b940794bbf">   90</a></span>&#160;        ros::CallbackQueue          <a class="code" href="classgazebo_1_1NubotGazebo.html#a7186c914f81602db7bd347b940794bbf">message_queue_</a>;     <span class="comment">// Custom Callback Queue. Details see http://wiki.ros.org/roscpp/Overview/Callbacks%20and%20Spinning</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#ae1fe2dc1962659f70ebba9555a92e59a">   91</a></span>&#160;        ros::CallbackQueue          <a class="code" href="classgazebo_1_1NubotGazebo.html#ae1fe2dc1962659f70ebba9555a92e59a">service_queue_</a>;     <span class="comment">// Custom Callback Queue</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a4e3b8b74aa075427ecbd5c82f630144d">   92</a></span>&#160;        event::ConnectionPtr        <a class="code" href="classgazebo_1_1NubotGazebo.html#a4e3b8b74aa075427ecbd5c82f630144d">update_connection_</a>;         <span class="comment">// Pointer to the update event connection</span></div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        </div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a320dc212fab523958abb529f946133bd">   94</a></span>&#160;        gazebo_msgs::ModelStates    <a class="code" href="classgazebo_1_1NubotGazebo.html#a320dc212fab523958abb529f946133bd">model_states_msg_</a>;          <span class="comment">// Container for the ModelStates msg      </span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a5abf5be34d8441db05d94ead7924ce14">   95</a></span>&#160;        <a class="code" href="structgazebo_1_1model__state.html">model_state</a>                 <a class="code" href="classgazebo_1_1NubotGazebo.html#a5abf5be34d8441db05d94ead7924ce14">nubot_state_</a>;</div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#af7356a83d30997d884440a10e95d29f4">   96</a></span>&#160;        <a class="code" href="structgazebo_1_1model__state.html">model_state</a>                 <a class="code" href="classgazebo_1_1NubotGazebo.html#af7356a83d30997d884440a10e95d29f4">football_state_</a>;</div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a36186a24f60f3c88fd6fb12fd85b4fa4">   97</a></span>&#160;        common::Time                  <a class="code" href="classgazebo_1_1NubotGazebo.html#a36186a24f60f3c88fd6fb12fd85b4fa4">receive_sim_time_</a>;</div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a8e05ad53365765db200e0d62c451e069">   98</a></span>&#160;        common::Time                  <a class="code" href="classgazebo_1_1NubotGazebo.html#a8e05ad53365765db200e0d62c451e069">last_current_time_</a>;</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a385577ffa9cc48440e8047019d6e67f6">  100</a></span>&#160;        math::Vector3               <a class="code" href="classgazebo_1_1NubotGazebo.html#a385577ffa9cc48440e8047019d6e67f6">desired_rot_vector_</a>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#ac515996ccf0c682a0ed88f00e401373d">  101</a></span>&#160;        math::Vector3               <a class="code" href="classgazebo_1_1NubotGazebo.html#ac515996ccf0c682a0ed88f00e401373d">desired_trans_vector_</a>;</div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#ae4b4790d24996fbfdd51f74baa45170a">  102</a></span>&#160;        math::Vector3               <a class="code" href="classgazebo_1_1NubotGazebo.html#ae4b4790d24996fbfdd51f74baa45170a">nubot_football_vector_</a>;</div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#aea8b62919e2834d4311a7fd7935036af">  103</a></span>&#160;        math::Vector3               <a class="code" href="classgazebo_1_1NubotGazebo.html#aea8b62919e2834d4311a7fd7935036af">kick_vector_world_</a>;</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a11fbfac7f239d13730b4d676af18f67e">  104</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#a11fbfac7f239d13730b4d676af18f67e">nubot_football_vector_length_</a>;</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#ac92e4461911d9522f1454978d26ec461">  105</a></span>&#160;        std::string                 <a class="code" href="classgazebo_1_1NubotGazebo.html#ac92e4461911d9522f1454978d26ec461">robot_namespace_</a>;   <span class="comment">// robot namespace. Not used yet.</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#adf2314dfb2ab6cb5ecdb2bb0a9736665">  106</a></span>&#160;        std::string                 <a class="code" href="classgazebo_1_1NubotGazebo.html#adf2314dfb2ab6cb5ecdb2bb0a9736665">model_name_</a>;</div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#aea004ec0ee1c5dfdc8cba31939f18e39">  107</a></span>&#160;        std::string                 <a class="code" href="classgazebo_1_1NubotGazebo.html#aea004ec0ee1c5dfdc8cba31939f18e39">football_name_</a>;</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a918fab93f4939a8bb06d65a997e20a54">  108</a></span>&#160;        std::string                 <a class="code" href="classgazebo_1_1NubotGazebo.html#a918fab93f4939a8bb06d65a997e20a54">football_chassis_</a>;</div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a5d3cf2ace05ce1ade8b71d1c6397a7b0">  109</a></span>&#160;        std::string                 <a class="code" href="classgazebo_1_1NubotGazebo.html#a5d3cf2ace05ce1ade8b71d1c6397a7b0">robot_prefix_</a>;</div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#af45b036c2156b537d5282f63c509d1e4">  110</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                <a class="code" href="classgazebo_1_1NubotGazebo.html#af45b036c2156b537d5282f63c509d1e4">football_index_</a>;</div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#adce69b7247cba8a3433a6cdfad5b61ef">  111</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                <a class="code" href="classgazebo_1_1NubotGazebo.html#adce69b7247cba8a3433a6cdfad5b61ef">nubot_index_</a>;</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a67f7850c63c5dd6fe80694c9a426e5ec">  113</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#a67f7850c63c5dd6fe80694c9a426e5ec">max_linear_vel_</a>;</div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#ae9da5f6a1c7b5624dbf6bb20a2819d40">  114</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#ae9da5f6a1c7b5624dbf6bb20a2819d40">max_angular_vel_</a>;</div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a646a80199e35f2f47558b7b7aa27bea4">  115</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#a646a80199e35f2f47558b7b7aa27bea4">dribble_distance_thres_</a>;</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#ab012e0229172416640558cf2746a0974">  116</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#ab012e0229172416640558cf2746a0974">dribble_angle_thres_</a>;</div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#abc8f7cb67014e700c08e27023353e419">  117</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#abc8f7cb67014e700c08e27023353e419">kick_ball_vel_</a>;</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#af17747304ff9b241fa0642c52923498b">  118</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#af17747304ff9b241fa0642c52923498b">Vx_cmd_</a>;</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a977c91e62fed23c5fb9233e5d38ad597">  119</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#a977c91e62fed23c5fb9233e5d38ad597">Vy_cmd_</a>;</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#aebc0851c9ab6da1d1c96d470e72758f8">  120</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#aebc0851c9ab6da1d1c96d470e72758f8">w_cmd_</a>;</div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a7ebd21f6da11a8f2b514c2e0930a26e6">  121</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#a7ebd21f6da11a8f2b514c2e0930a26e6">force_</a>;                     <span class="comment">//kick ball force</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a9e30363181d0a790081ce6d0e9151e6b">  122</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#a9e30363181d0a790081ce6d0e9151e6b">dribble_P_</a>;                 <span class="comment">// P gain</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#ab74f3e63fe906f0c982837b1eeeefb5c">  123</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#ab74f3e63fe906f0c982837b1eeeefb5c">dribble_I_</a>;                 <span class="comment">// I gain</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a727079312e073df8799e1a385ac8da00">  124</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#a727079312e073df8799e1a385ac8da00">dribble_D_</a>;                 <span class="comment">// D gain</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a0f8a50e34877912a0c53c3185ccd28d9">  125</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#a0f8a50e34877912a0c53c3185ccd28d9">I_term_max_</a>;                     <span class="comment">// maximum I term</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#affe0d982594c738a7ebec3ac1849c01f">  126</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#affe0d982594c738a7ebec3ac1849c01f">I_term_min_</a>;                     <span class="comment">// minimum I term</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a6b6ab10ac24ec1483797885f5d1b9110">  127</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#a6b6ab10ac24ec1483797885f5d1b9110">cmd_max_</a>;</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a360cbab192432814122197f21d685e56">  128</a></span>&#160;        <span class="keywordtype">double</span>                      <a class="code" href="classgazebo_1_1NubotGazebo.html#a360cbab192432814122197f21d685e56">cmd_min_</a>;</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a3c54a29f7aa4e67e4f86b5e848a930d5">  129</a></span>&#160;        <span class="keywordtype">int</span>                         <a class="code" href="classgazebo_1_1NubotGazebo.html#a3c54a29f7aa4e67e4f86b5e848a930d5">mode_</a>;                      <span class="comment">//kick ball mode</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a1aeb8fee9f7e057b182afcf2fd03f1c1">  130</a></span>&#160;        common::Time                <a class="code" href="classgazebo_1_1NubotGazebo.html#a1aeb8fee9f7e057b182afcf2fd03f1c1">last_update_time_</a>;</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        </div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#aefc2d91922066c5ffc1d7faa175ab68a">  132</a></span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                <a class="code" href="classgazebo_1_1NubotGazebo.html#aefc2d91922066c5ffc1d7faa175ab68a">model_count_</a>;                <span class="comment">// Number of models</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a408738f621515f00547b54ed74481127">  133</a></span>&#160;        <span class="keywordtype">bool</span>                        <a class="code" href="classgazebo_1_1NubotGazebo.html#a408738f621515f00547b54ed74481127">dribble_flag_</a>;</div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a85d5357dfacc73801bed752d6dc297d4">  134</a></span>&#160;        <span class="keywordtype">bool</span>                        <a class="code" href="classgazebo_1_1NubotGazebo.html#a85d5357dfacc73801bed752d6dc297d4">shot_flag_</a>;</div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#ae7c8ddd9342426222c1354740b23a01d">  135</a></span>&#160;        <span class="keywordtype">bool</span>                        <a class="code" href="classgazebo_1_1NubotGazebo.html#ae7c8ddd9342426222c1354740b23a01d">ModelStatesCB_flag_</a>;         <span class="comment">// Indicate receiving messages</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a6392423c1aaf2ba68aac9eeb318f9e5b">  136</a></span>&#160;        <span class="keywordtype">bool</span>                        <a class="code" href="classgazebo_1_1NubotGazebo.html#a6392423c1aaf2ba68aac9eeb318f9e5b">judge_nubot_stuck_</a>;          <span class="comment">// decide when to judge</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a0d63b5e7f3d213fca30bbe09bd15e114">  137</a></span>&#160;        <span class="keywordtype">bool</span>                        <a class="code" href="classgazebo_1_1NubotGazebo.html#a0d63b5e7f3d213fca30bbe09bd15e114">is_hold_ball_</a>;</div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a51c8eaa9e931b22700f6c000e413bfa2">  138</a></span>&#160;        <span class="keywordtype">bool</span>                        <a class="code" href="classgazebo_1_1NubotGazebo.html#a51c8eaa9e931b22700f6c000e413bfa2">ball_decay_flag_</a>;</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#afbdb7428487c2f6dec5000bae3d6f5a7">  139</a></span>&#160;        <span class="keywordtype">int</span>                         <a class="code" href="classgazebo_1_1NubotGazebo.html#afbdb7428487c2f6dec5000bae3d6f5a7">count_</a>;</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#acf9828d7b8b37440a8e45ef63895ec8b">  141</a></span>&#160;        <a class="code" href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953b">nubot_state</a>                 <a class="code" href="classgazebo_1_1NubotGazebo.html#acf9828d7b8b37440a8e45ef63895ec8b">state_</a>;</div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a8db3f4b9767b4ec34716756f02fb7fe9">  142</a></span>&#160;        <a class="code" href="nubot__gazebo_8hh.html#a503a2f01f9f49bd293d3c44faf21b528">nubot_substate</a>              <a class="code" href="classgazebo_1_1NubotGazebo.html#a8db3f4b9767b4ec34716756f02fb7fe9">sub_state_</a>;</div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a5865f8d5f7aad90ace72fe2942b6d25e">  143</a></span>&#160;        <a class="code" href="classnubot_1_1PID.html">nubot::PID</a>                  <a class="code" href="classgazebo_1_1NubotGazebo.html#a5865f8d5f7aad90ace72fe2942b6d25e">dribble_pid_</a>;</div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#ac16bd419aba2826c0227ac575b351e9e">  144</a></span>&#160;        <a class="code" href="classnubot_1_1ParaTrajPlanning.html">nubot::ParaTrajPlanning</a>   <a class="code" href="classgazebo_1_1NubotGazebo.html#ac16bd419aba2826c0227ac575b351e9e">traj_plan_linear_</a>;</div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a95c171c478be4aadf6b4d96a3d3a48c8">  145</a></span>&#160;        <a class="code" href="classnubot_1_1ParaTrajPlanning.html">nubot::ParaTrajPlanning</a>   <a class="code" href="classgazebo_1_1NubotGazebo.html#a95c171c478be4aadf6b4d96a3d3a48c8">traj_plan_rot_</a>;</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a5a6b999a205a45e1778e0f4d75e325e0">  146</a></span>&#160;        math::Rand                  <a class="code" href="classgazebo_1_1NubotGazebo.html#a5a6b999a205a45e1778e0f4d75e325e0">rand_</a>;</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classgazebo_1_1NubotGazebo.html#a6f892f9dcb5b46bdd232ffec277dd093">  147</a></span>&#160;        dynamic_reconfigure::Server&lt;nubot_gazebo::NubotGazeboConfig&gt; *<a class="code" href="classgazebo_1_1NubotGazebo.html#a6f892f9dcb5b46bdd232ffec277dd093">reconfigureServer_</a>;</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a96b102bf11d96dda2cdab0f2f9460d8d">model_states_CB</a>(<span class="keyword">const</span> gazebo_msgs::ModelStates::ConstPtr&amp; _msg);</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#aafe5e8deca0e5a85a30c73629eee8703">vel_cmd_CB</a>(<span class="keyword">const</span> <a class="code" href="structnubot__common_1_1VelCmd__.html#a5a57f1d76c9209090962bf805a6d8cc8">nubot_common::VelCmd::ConstPtr</a>&amp; cmd);</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#ae042db5614aea3da7c8f547c44d9ff6e">ball_handle_control_service</a>(<a class="code" href="structnubot__common_1_1BallHandleRequest__.html">nubot_common::BallHandle::Request</a>  &amp;req,</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                                      <a class="code" href="structnubot__common_1_1BallHandleResponse__.html">nubot_common::BallHandle::Response</a> &amp;res);</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#ade096537ecc11263f1dd14428325329b">shoot_control_servive</a>(<a class="code" href="structnubot__common_1_1ShootRequest__.html">nubot_common::Shoot::Request</a>  &amp;req,</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                                 <a class="code" href="structnubot__common_1_1ShootResponse__.html">nubot_common::Shoot::Response</a> &amp;res);</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a2c87fbf2e13762d4827367028d493670">message_queue_thread</a>();</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#abe786a1fbc3407f1b2ac655b1af15a8b">service_queue_thread</a>();</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a3b884175db3fd9e7ac88f6076d5f2b8e">update_model_info</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#ad93752507f23724bba2f731325e4c14b">nubot_locomotion</a>(math::Vector3 linear_vel_vector, math::Vector3 angular_vel_vector);  <span class="comment">// rotation + translation</span></div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a8ac8c9467b8e14b4ceb0718d97031617">get_rot_vector</a>(math::Vector3 target_point_world, <span class="keywordtype">double</span> degree_thres);</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a0a50fbb4be79c99cf860b84413f8fa9b">get_trans_vector</a>(math::Vector3 target_point_world, <span class="keywordtype">double</span> metre_thres);</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a91862269320f78bc24856e8877af3cc4">dribble_ball</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a0b8f02255ccde5f6768afb45fee8b81b">kick_ball</a>(<span class="keywordtype">int</span> <a class="code" href="namespacegenerate__cached__setup.html#afd1a431f16a2a78ef0438a658e4ac3cf">mode</a>, <span class="keywordtype">double</span> vel);   <span class="comment">// including shooting the goal and passing the ball</span></div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a8366f268f6bba085201123d74b786368">get_is_hold_ball</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a991cc13697cbd1eaf855d21e4f5d78d2">nubot_auto_control</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#aaa7835337bbfd120b5b85af40ccf47ae">nubot_be_control</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a828269281839a4f18d30f02d20ad62b6">config</a>(<a class="code" href="classnubot__gazebo_1_1NubotGazeboConfig.html">nubot_gazebo::NubotGazeboConfig</a> &amp;<a class="code" href="classgazebo_1_1NubotGazebo.html#a828269281839a4f18d30f02d20ad62b6">config</a>, uint32_t <a class="code" href="namespacenubot__gazebo_1_1cfg_1_1NubotGazeboConfig.html#a86a0bbd69e81af35fe10e40ae4352da5">level</a>);</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a3a42f8965b7ccb35d0b6a0624c56ba86">ball_vel_decay</a>(math::Vector3 vel, <span class="keywordtype">double</span> mu);</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a5b5d4a3644867257cb379613072e9567">set_ball_vel</a>(math::Vector3 &amp;vel, <span class="keywordtype">bool</span> &amp;ball_decay_flag);</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        </div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    <span class="keyword">public</span>:        </div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        <a class="code" href="classgazebo_1_1NubotGazebo.html#a6c8d0be666316dfa03c49ec0a5e01e96">NubotGazebo</a>();</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a90ec014dbd4dcad3f1f0c78771fd4e63">~NubotGazebo</a>();</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    </div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="keyword">protected</span>:   </div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#aa1eea79757774a935fe82a5fbc1b3f94">Load</a>(physics::ModelPtr _parent, sdf::ElementPtr <span class="comment">/*_sdf*/</span>) ;</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#a9d2bb8130da6d209089f5ee469427ca4">UpdateChild</a>();</div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#abf91360d6ce9b5f2cf02c3907100495e">Init</a>();</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgazebo_1_1NubotGazebo.html#aefa336771bb8dffca92a2919352b62bc">Reset</a>();</div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;  };</div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;}</div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="preprocessor">#endif </span></div>
<div class="ttc" id="nubot__gazebo_8hh_html_a9f17572284bab3e9bd067a6393a7953b"><div class="ttname"><a href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953b">nubot_state</a></div><div class="ttdeci">nubot_state</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:33</div></div>
<div class="ttc" id="structnubot__common_1_1BallHandleRequest___html"><div class="ttname"><a href="structnubot__common_1_1BallHandleRequest__.html">nubot_common::BallHandleRequest_</a></div><div class="ttdef"><b>Definition:</b> BallHandleRequest.h:22</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ae7c8ddd9342426222c1354740b23a01d"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ae7c8ddd9342426222c1354740b23a01d">gazebo::NubotGazebo::ModelStatesCB_flag_</a></div><div class="ttdeci">bool ModelStatesCB_flag_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:135</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a0f8a50e34877912a0c53c3185ccd28d9"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a0f8a50e34877912a0c53c3185ccd28d9">gazebo::NubotGazebo::I_term_max_</a></div><div class="ttdeci">double I_term_max_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:125</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_afd3e6ab82580823e83d84433dac19e86"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#afd3e6ab82580823e83d84433dac19e86">gazebo::NubotGazebo::shoot_server_</a></div><div class="ttdeci">ros::ServiceServer shoot_server_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:84</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_acf9828d7b8b37440a8e45ef63895ec8b"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#acf9828d7b8b37440a8e45ef63895ec8b">gazebo::NubotGazebo::state_</a></div><div class="ttdeci">nubot_state state_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:141</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a6b3d2a253732eedfcf18e0223435bed0"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a6b3d2a253732eedfcf18e0223435bed0">gazebo::NubotGazebo::srvCB_lock_</a></div><div class="ttdeci">boost::mutex srvCB_lock_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:89</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a96b102bf11d96dda2cdab0f2f9460d8d"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a96b102bf11d96dda2cdab0f2f9460d8d">gazebo::NubotGazebo::model_states_CB</a></div><div class="ttdeci">void model_states_CB(const gazebo_msgs::ModelStates::ConstPtr &amp;_msg)</div><div class="ttdoc">ModelStates message callback function. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:237</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a6264896320559e214ac33d820c44b357"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a6264896320559e214ac33d820c44b357">gazebo::NubotGazebo::Velcmd_sub_</a></div><div class="ttdeci">ros::Subscriber Velcmd_sub_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:82</div></div>
<div class="ttc" id="structgazebo_1_1Pose_html_a561aa831b8b83248778e9a977fa92d74"><div class="ttname"><a href="structgazebo_1_1Pose.html#a561aa831b8b83248778e9a977fa92d74">gazebo::Pose::orientation</a></div><div class="ttdeci">math::Quaternion orientation</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:54</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a2c87fbf2e13762d4827367028d493670"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a2c87fbf2e13762d4827367028d493670">gazebo::NubotGazebo::message_queue_thread</a></div><div class="ttdeci">void message_queue_thread()</div><div class="ttdoc">Custom message callback queue thread. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:202</div></div>
<div class="ttc" id="structgazebo_1_1Pose_html_adf6e7e054dc466c6cd74592b743a7a76"><div class="ttname"><a href="structgazebo_1_1Pose.html#adf6e7e054dc466c6cd74592b743a7a76">gazebo::Pose::position</a></div><div class="ttdeci">math::Vector3 position</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:53</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ae9da5f6a1c7b5624dbf6bb20a2819d40"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ae9da5f6a1c7b5624dbf6bb20a2819d40">gazebo::NubotGazebo::max_angular_vel_</a></div><div class="ttdeci">double max_angular_vel_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:114</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a0d63b5e7f3d213fca30bbe09bd15e114"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a0d63b5e7f3d213fca30bbe09bd15e114">gazebo::NubotGazebo::is_hold_ball_</a></div><div class="ttdeci">bool is_hold_ball_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:137</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ae042db5614aea3da7c8f547c44d9ff6e"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ae042db5614aea3da7c8f547c44d9ff6e">gazebo::NubotGazebo::ball_handle_control_service</a></div><div class="ttdeci">bool ball_handle_control_service(nubot_common::BallHandle::Request &amp;req, nubot_common::BallHandle::Response &amp;res)</div><div class="ttdoc">Ball handling service server function. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:357</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a6b6ab10ac24ec1483797885f5d1b9110"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a6b6ab10ac24ec1483797885f5d1b9110">gazebo::NubotGazebo::cmd_max_</a></div><div class="ttdeci">double cmd_max_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:127</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ab74f3e63fe906f0c982837b1eeeefb5c"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ab74f3e63fe906f0c982837b1eeeefb5c">gazebo::NubotGazebo::dribble_I_</a></div><div class="ttdeci">double dribble_I_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:123</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a7ebd21f6da11a8f2b514c2e0930a26e6"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a7ebd21f6da11a8f2b514c2e0930a26e6">gazebo::NubotGazebo::force_</a></div><div class="ttdeci">double force_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:121</div></div>
<div class="ttc" id="structgazebo_1_1Pose_html"><div class="ttname"><a href="structgazebo_1_1Pose.html">gazebo::Pose</a></div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:51</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ac7f22b4b498327d11697f07cb064e460"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ac7f22b4b498327d11697f07cb064e460">gazebo::NubotGazebo::nubot_model_</a></div><div class="ttdeci">physics::ModelPtr nubot_model_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:75</div></div>
<div class="ttc" id="BallHandle_8h_html"><div class="ttname"><a href="BallHandle_8h.html">BallHandle.h</a></div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a95c171c478be4aadf6b4d96a3d3a48c8"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a95c171c478be4aadf6b4d96a3d3a48c8">gazebo::NubotGazebo::traj_plan_rot_</a></div><div class="ttdeci">nubot::ParaTrajPlanning traj_plan_rot_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:145</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_adce69b7247cba8a3433a6cdfad5b61ef"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#adce69b7247cba8a3433a6cdfad5b61ef">gazebo::NubotGazebo::nubot_index_</a></div><div class="ttdeci">unsigned int nubot_index_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:111</div></div>
<div class="ttc" id="structnubot__common_1_1VelCmd___html_a5a57f1d76c9209090962bf805a6d8cc8"><div class="ttname"><a href="structnubot__common_1_1VelCmd__.html#a5a57f1d76c9209090962bf805a6d8cc8">nubot_common::VelCmd_&lt; std::allocator&lt; void &gt; &gt;::ConstPtr</a></div><div class="ttdeci">boost::shared_ptr&lt; ::nubot_common::VelCmd_&lt; std::allocator&lt; void &gt; &gt; const  &gt; ConstPtr</div><div class="ttdef"><b>Definition:</b> VelCmd.h:52</div></div>
<div class="ttc" id="nubot__gazebo_8hh_html_a9f17572284bab3e9bd067a6393a7953ba589b7d94a3d91d145720e2fed0eb3a05"><div class="ttname"><a href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953ba589b7d94a3d91d145720e2fed0eb3a05">RESET</a></div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:38</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a85d5357dfacc73801bed752d6dc297d4"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a85d5357dfacc73801bed752d6dc297d4">gazebo::NubotGazebo::shot_flag_</a></div><div class="ttdeci">bool shot_flag_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:134</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_adf2314dfb2ab6cb5ecdb2bb0a9736665"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#adf2314dfb2ab6cb5ecdb2bb0a9736665">gazebo::NubotGazebo::model_name_</a></div><div class="ttdeci">std::string model_name_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:106</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_aebc0851c9ab6da1d1c96d470e72758f8"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#aebc0851c9ab6da1d1c96d470e72758f8">gazebo::NubotGazebo::w_cmd_</a></div><div class="ttdeci">double w_cmd_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:120</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_aefa336771bb8dffca92a2919352b62bc"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#aefa336771bb8dffca92a2919352b62bc">gazebo::NubotGazebo::Reset</a></div><div class="ttdeci">virtual void Reset()</div><div class="ttdoc">Model Reset function. Not required by model plugin. It is triggered when the world resets...</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:158</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a8db3f4b9767b4ec34716756f02fb7fe9"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a8db3f4b9767b4ec34716756f02fb7fe9">gazebo::NubotGazebo::sub_state_</a></div><div class="ttdeci">nubot_substate sub_state_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:142</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_abf91360d6ce9b5f2cf02c3907100495e"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#abf91360d6ce9b5f2cf02c3907100495e">gazebo::NubotGazebo::Init</a></div><div class="ttdeci">virtual void Init()</div><div class="ttdoc">Model Initialization(after the Load function). Not required by model plugin. Will be called thirdly...</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:139</div></div>
<div class="ttc" id="structnubot__common_1_1BallHandleResponse___html"><div class="ttname"><a href="structnubot__common_1_1BallHandleResponse__.html">nubot_common::BallHandleResponse_</a></div><div class="ttdef"><b>Definition:</b> BallHandleResponse.h:22</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a3b884175db3fd9e7ac88f6076d5f2b8e"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a3b884175db3fd9e7ac88f6076d5f2b8e">gazebo::NubotGazebo::update_model_info</a></div><div class="ttdeci">bool update_model_info(void)</div><div class="ttdoc">Updating models&#39; states; By default, Gaussian noise is not added, but you can add it by changing the ...</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:262</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_aa1eea79757774a935fe82a5fbc1b3f94"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#aa1eea79757774a935fe82a5fbc1b3f94">gazebo::NubotGazebo::Load</a></div><div class="ttdeci">void Load(physics::ModelPtr _parent, sdf::ElementPtr)</div><div class="ttdoc">Load the controller. Required by model plugin. Will be called secondly. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:63</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ac16bd419aba2826c0227ac575b351e9e"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ac16bd419aba2826c0227ac575b351e9e">gazebo::NubotGazebo::traj_plan_linear_</a></div><div class="ttdeci">nubot::ParaTrajPlanning traj_plan_linear_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:144</div></div>
<div class="ttc" id="classnubot_1_1PID_html"><div class="ttname"><a href="classnubot_1_1PID.html">nubot::PID</a></div><div class="ttdoc">Generic PID controller class. Generic proportiolnal-integral-derivative controller class that keeps t...</div><div class="ttdef"><b>Definition:</b> nubot_PID.hh:14</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_abc8f7cb67014e700c08e27023353e419"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#abc8f7cb67014e700c08e27023353e419">gazebo::NubotGazebo::kick_ball_vel_</a></div><div class="ttdeci">double kick_ball_vel_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:117</div></div>
<div class="ttc" id="namespacegenerate__cached__setup_html_afd1a431f16a2a78ef0438a658e4ac3cf"><div class="ttname"><a href="namespacegenerate__cached__setup.html#afd1a431f16a2a78ef0438a658e4ac3cf">generate_cached_setup.mode</a></div><div class="ttdeci">tuple mode</div><div class="ttdef"><b>Definition:</b> generate_cached_setup.py:29</div></div>
<div class="ttc" id="structnubot__common_1_1ShootRequest___html"><div class="ttname"><a href="structnubot__common_1_1ShootRequest__.html">nubot_common::ShootRequest_</a></div><div class="ttdef"><b>Definition:</b> ShootRequest.h:22</div></div>
<div class="ttc" id="parabolic__transition__planning_8hh_html"><div class="ttname"><a href="parabolic__transition__planning_8hh.html">parabolic_transition_planning.hh</a></div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a0b8f02255ccde5f6768afb45fee8b81b"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a0b8f02255ccde5f6768afb45fee8b81b">gazebo::NubotGazebo::kick_ball</a></div><div class="ttdeci">void kick_ball(int mode, double vel)</div><div class="ttdoc">Nubot kicking ball. For more information, read the paper &quot;Weijia Yao et al., A Simulation System Base...</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:418</div></div>
<div class="ttc" id="namespacenubot__gazebo_1_1cfg_1_1NubotGazeboConfig_html_a86a0bbd69e81af35fe10e40ae4352da5"><div class="ttname"><a href="namespacenubot__gazebo_1_1cfg_1_1NubotGazeboConfig.html#a86a0bbd69e81af35fe10e40ae4352da5">nubot_gazebo.cfg.NubotGazeboConfig.level</a></div><div class="ttdeci">dictionary level</div><div class="ttdef"><b>Definition:</b> NubotGazeboConfig.py:18</div></div>
<div class="ttc" id="classnubot_1_1ParaTrajPlanning_html"><div class="ttname"><a href="classnubot_1_1ParaTrajPlanning.html">nubot::ParaTrajPlanning</a></div><div class="ttdoc">trajectory planning for parabolic curve transition. The trajectory consists of 3 part: two parabolic ...</div><div class="ttdef"><b>Definition:</b> parabolic_transition_planning.hh:31</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_aea004ec0ee1c5dfdc8cba31939f18e39"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#aea004ec0ee1c5dfdc8cba31939f18e39">gazebo::NubotGazebo::football_name_</a></div><div class="ttdeci">std::string football_name_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:107</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a191e11ef5a0b3e6275c3938ad61cec0a"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a191e11ef5a0b3e6275c3938ad61cec0a">gazebo::NubotGazebo::football_link_</a></div><div class="ttdeci">physics::LinkPtr football_link_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:77</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a991cc13697cbd1eaf855d21e4f5d78d2"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a991cc13697cbd1eaf855d21e4f5d78d2">gazebo::NubotGazebo::nubot_auto_control</a></div><div class="ttdeci">void nubot_auto_control(void)</div><div class="ttdoc">Single nubot predefined autonomous motions. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:676</div></div>
<div class="ttc" id="nubot__gazebo_8hh_html_a9f17572284bab3e9bd067a6393a7953babc8e41c2d63243ae782d425719dd355c"><div class="ttname"><a href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953babc8e41c2d63243ae782d425719dd355c">DRIBBLE_BALL</a></div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:36</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ae1fe2dc1962659f70ebba9555a92e59a"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ae1fe2dc1962659f70ebba9555a92e59a">gazebo::NubotGazebo::service_queue_</a></div><div class="ttdeci">ros::CallbackQueue service_queue_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:91</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a310c7df239fab0570dbdc82d4552ec6d"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a310c7df239fab0570dbdc82d4552ec6d">gazebo::NubotGazebo::rosnode_</a></div><div class="ttdeci">ros::NodeHandle * rosnode_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:80</div></div>
<div class="ttc" id="nubot__gazebo_8hh_html_a503a2f01f9f49bd293d3c44faf21b528"><div class="ttname"><a href="nubot__gazebo_8hh.html#a503a2f01f9f49bd293d3c44faf21b528">nubot_substate</a></div><div class="ttdeci">nubot_substate</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:42</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a5abf5be34d8441db05d94ead7924ce14"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a5abf5be34d8441db05d94ead7924ce14">gazebo::NubotGazebo::nubot_state_</a></div><div class="ttdeci">model_state nubot_state_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:95</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a51c8eaa9e931b22700f6c000e413bfa2"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a51c8eaa9e931b22700f6c000e413bfa2">gazebo::NubotGazebo::ball_decay_flag_</a></div><div class="ttdeci">bool ball_decay_flag_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:138</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a360cbab192432814122197f21d685e56"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a360cbab192432814122197f21d685e56">gazebo::NubotGazebo::cmd_min_</a></div><div class="ttdeci">double cmd_min_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:128</div></div>
<div class="ttc" id="structgazebo_1_1model__state_html"><div class="ttname"><a href="structgazebo_1_1model__state.html">gazebo::model_state</a></div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:62</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a320dc212fab523958abb529f946133bd"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a320dc212fab523958abb529f946133bd">gazebo::NubotGazebo::model_states_msg_</a></div><div class="ttdeci">gazebo_msgs::ModelStates model_states_msg_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:94</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a7186c914f81602db7bd347b940794bbf"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a7186c914f81602db7bd347b940794bbf">gazebo::NubotGazebo::message_queue_</a></div><div class="ttdeci">ros::CallbackQueue message_queue_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:90</div></div>
<div class="ttc" id="VelCmd_8h_html"><div class="ttname"><a href="VelCmd_8h.html">VelCmd.h</a></div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a0a50fbb4be79c99cf860b84413f8fa9b"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a0a50fbb4be79c99cf860b84413f8fa9b">gazebo::NubotGazebo::get_trans_vector</a></div><div class="ttdeci">bool get_trans_vector(math::Vector3 target_point_world, double metre_thres)</div><div class="ttdoc">Nubot chasing football function. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:531</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a1aeb8fee9f7e057b182afcf2fd03f1c1"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a1aeb8fee9f7e057b182afcf2fd03f1c1">gazebo::NubotGazebo::last_update_time_</a></div><div class="ttdeci">common::Time last_update_time_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:130</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a977c91e62fed23c5fb9233e5d38ad597"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a977c91e62fed23c5fb9233e5d38ad597">gazebo::NubotGazebo::Vy_cmd_</a></div><div class="ttdeci">double Vy_cmd_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:119</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a67f7850c63c5dd6fe80694c9a426e5ec"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a67f7850c63c5dd6fe80694c9a426e5ec">gazebo::NubotGazebo::max_linear_vel_</a></div><div class="ttdeci">double max_linear_vel_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:113</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a76897836db2bb2e49c75fbf64b4b9aeb"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a76897836db2bb2e49c75fbf64b4b9aeb">gazebo::NubotGazebo::football_model_</a></div><div class="ttdeci">physics::ModelPtr football_model_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:76</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a8ac8c9467b8e14b4ceb0718d97031617"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a8ac8c9467b8e14b4ceb0718d97031617">gazebo::NubotGazebo::get_rot_vector</a></div><div class="ttdeci">bool get_rot_vector(math::Vector3 target_point_world, double degree_thres)</div><div class="ttdoc">Nubot rotates; kicking mechanism towards ball. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:478</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_aafe5e8deca0e5a85a30c73629eee8703"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#aafe5e8deca0e5a85a30c73629eee8703">gazebo::NubotGazebo::vel_cmd_CB</a></div><div class="ttdeci">void vel_cmd_CB(const nubot_common::VelCmd::ConstPtr &amp;cmd)</div><div class="ttdoc">VelCmd message callback function. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:339</div></div>
<div class="ttc" id="structgazebo_1_1model__state_html_a796837a0feaa387282fac7735cf6cf56"><div class="ttname"><a href="structgazebo_1_1model__state.html#a796837a0feaa387282fac7735cf6cf56">gazebo::model_state::model_name</a></div><div class="ttdeci">std::string model_name</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:64</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_abe786a1fbc3407f1b2ac655b1af15a8b"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#abe786a1fbc3407f1b2ac655b1af15a8b">gazebo::NubotGazebo::service_queue_thread</a></div><div class="ttdeci">void service_queue_thread()</div><div class="ttdoc">Custom service callback queue thread. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:214</div></div>
<div class="ttc" id="Shoot_8h_html"><div class="ttname"><a href="Shoot_8h.html">Shoot.h</a></div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a6392423c1aaf2ba68aac9eeb318f9e5b"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a6392423c1aaf2ba68aac9eeb318f9e5b">gazebo::NubotGazebo::judge_nubot_stuck_</a></div><div class="ttdeci">bool judge_nubot_stuck_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:136</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a6c8d0be666316dfa03c49ec0a5e01e96"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a6c8d0be666316dfa03c49ec0a5e01e96">gazebo::NubotGazebo::NubotGazebo</a></div><div class="ttdeci">NubotGazebo()</div><div class="ttdoc">Constructor. Will be called firstly. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:44</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_af8abc682c8dc7cad7d29d131901aec05"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#af8abc682c8dc7cad7d29d131901aec05">gazebo::NubotGazebo::ballhandle_server_</a></div><div class="ttdeci">ros::ServiceServer ballhandle_server_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:83</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a11fbfac7f239d13730b4d676af18f67e"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a11fbfac7f239d13730b4d676af18f67e">gazebo::NubotGazebo::nubot_football_vector_length_</a></div><div class="ttdeci">double nubot_football_vector_length_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:104</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_aaa7835337bbfd120b5b85af40ccf47ae"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#aaa7835337bbfd120b5b85af40ccf47ae">gazebo::NubotGazebo::nubot_be_control</a></div><div class="ttdeci">void nubot_be_control(void)</div><div class="ttdoc">Robot motion controlled by real-robot code; or controlled by a keyboard. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:653</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ae4b4790d24996fbfdd51f74baa45170a"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ae4b4790d24996fbfdd51f74baa45170a">gazebo::NubotGazebo::nubot_football_vector_</a></div><div class="ttdeci">math::Vector3 nubot_football_vector_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:102</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a36186a24f60f3c88fd6fb12fd85b4fa4"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a36186a24f60f3c88fd6fb12fd85b4fa4">gazebo::NubotGazebo::receive_sim_time_</a></div><div class="ttdeci">common::Time receive_sim_time_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:97</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_aefc2d91922066c5ffc1d7faa175ab68a"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#aefc2d91922066c5ffc1d7faa175ab68a">gazebo::NubotGazebo::model_count_</a></div><div class="ttdeci">unsigned int model_count_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:132</div></div>
<div class="ttc" id="structgazebo_1_1Twist_html_a7d2c10e52786244a11d3b94486313cd0"><div class="ttname"><a href="structgazebo_1_1Twist.html#a7d2c10e52786244a11d3b94486313cd0">gazebo::Twist::angular</a></div><div class="ttdeci">math::Vector3 angular</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:59</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_aea8b62919e2834d4311a7fd7935036af"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#aea8b62919e2834d4311a7fd7935036af">gazebo::NubotGazebo::kick_vector_world_</a></div><div class="ttdeci">math::Vector3 kick_vector_world_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:103</div></div>
<div class="ttc" id="nubot__gazebo_8hh_html_a503a2f01f9f49bd293d3c44faf21b528a34c99321316fe6ceed43466e9627a0c5"><div class="ttname"><a href="nubot__gazebo_8hh.html#a503a2f01f9f49bd293d3c44faf21b528a34c99321316fe6ceed43466e9627a0c5">MOVE_BALL</a></div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:44</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a8e05ad53365765db200e0d62c451e069"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a8e05ad53365765db200e0d62c451e069">gazebo::NubotGazebo::last_current_time_</a></div><div class="ttdeci">common::Time last_current_time_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:98</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_af45b036c2156b537d5282f63c509d1e4"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#af45b036c2156b537d5282f63c509d1e4">gazebo::NubotGazebo::football_index_</a></div><div class="ttdeci">unsigned int football_index_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:110</div></div>
<div class="ttc" id="core_8hpp_html"><div class="ttname"><a href="core_8hpp.html">core.hpp</a></div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a91862269320f78bc24856e8877af3cc4"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a91862269320f78bc24856e8877af3cc4">gazebo::NubotGazebo::dribble_ball</a></div><div class="ttdeci">void dribble_ball(void)</div><div class="ttdoc">Nubot dribbling ball function. The football follows nubot movement. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:575</div></div>
<div class="ttc" id="structgazebo_1_1model__state_html_a59c702ff3b33ef414d90cdcb873bad94"><div class="ttname"><a href="structgazebo_1_1model__state.html#a59c702ff3b33ef414d90cdcb873bad94">gazebo::model_state::pose</a></div><div class="ttdeci">Pose pose</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:65</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_af7356a83d30997d884440a10e95d29f4"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#af7356a83d30997d884440a10e95d29f4">gazebo::NubotGazebo::football_state_</a></div><div class="ttdeci">model_state football_state_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:96</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a90ec014dbd4dcad3f1f0c78771fd4e63"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a90ec014dbd4dcad3f1f0c78771fd4e63">gazebo::NubotGazebo::~NubotGazebo</a></div><div class="ttdeci">virtual ~NubotGazebo()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:47</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a828269281839a4f18d30f02d20ad62b6"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a828269281839a4f18d30f02d20ad62b6">gazebo::NubotGazebo::config</a></div><div class="ttdeci">void config(nubot_gazebo::NubotGazeboConfig &amp;config, uint32_t level)</div><div class="ttdoc">dynmaic recofigure calback function </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:223</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a4e3b8b74aa075427ecbd5c82f630144d"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a4e3b8b74aa075427ecbd5c82f630144d">gazebo::NubotGazebo::update_connection_</a></div><div class="ttdeci">event::ConnectionPtr update_connection_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:92</div></div>
<div class="ttc" id="NubotGazeboConfig_8h_html"><div class="ttname"><a href="NubotGazeboConfig_8h.html">NubotGazeboConfig.h</a></div></div>
<div class="ttc" id="nubot__gazebo_8hh_html_a503a2f01f9f49bd293d3c44faf21b528abdcb91b3f5374a0c1d9e7325816dc93c"><div class="ttname"><a href="nubot__gazebo_8hh.html#a503a2f01f9f49bd293d3c44faf21b528abdcb91b3f5374a0c1d9e7325816dc93c">ROTATE_BALL</a></div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:45</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a3c54a29f7aa4e67e4f86b5e848a930d5"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a3c54a29f7aa4e67e4f86b5e848a930d5">gazebo::NubotGazebo::mode_</a></div><div class="ttdeci">int mode_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:129</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a5865f8d5f7aad90ace72fe2942b6d25e"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a5865f8d5f7aad90ace72fe2942b6d25e">gazebo::NubotGazebo::dribble_pid_</a></div><div class="ttdeci">nubot::PID dribble_pid_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:143</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a9d2bb8130da6d209089f5ee469427ca4"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a9d2bb8130da6d209089f5ee469427ca4">gazebo::NubotGazebo::UpdateChild</a></div><div class="ttdeci">virtual void UpdateChild()</div><div class="ttdoc">Update the controller. It is running every simulation iteration. So you can put your core code here...</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:177</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ae985620428222dd9b1b5f507339119b8"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ae985620428222dd9b1b5f507339119b8">gazebo::NubotGazebo::message_callback_queue_thread_</a></div><div class="ttdeci">boost::thread message_callback_queue_thread_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:86</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ac515996ccf0c682a0ed88f00e401373d"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ac515996ccf0c682a0ed88f00e401373d">gazebo::NubotGazebo::desired_trans_vector_</a></div><div class="ttdeci">math::Vector3 desired_trans_vector_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:101</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a0c0bc3e99d501d7fcac319848006f87c"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a0c0bc3e99d501d7fcac319848006f87c">gazebo::NubotGazebo::service_callback_queue_thread_</a></div><div class="ttdeci">boost::thread service_callback_queue_thread_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:87</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a3a42f8965b7ccb35d0b6a0624c56ba86"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a3a42f8965b7ccb35d0b6a0624c56ba86">gazebo::NubotGazebo::ball_vel_decay</a></div><div class="ttdeci">void ball_vel_decay(math::Vector3 vel, double mu)</div><div class="ttdoc">a work-around for no rolling-friction in ODE. For more information, please read ODE manual...</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:800</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a7b758780795b0406d06bf5db5122dbe2"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a7b758780795b0406d06bf5db5122dbe2">gazebo::NubotGazebo::ModelStates_sub_</a></div><div class="ttdeci">ros::Subscriber ModelStates_sub_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:81</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a70f7775e1670311efc2aad7c306a3077"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a70f7775e1670311efc2aad7c306a3077">gazebo::NubotGazebo::msgCB_lock_</a></div><div class="ttdeci">boost::mutex msgCB_lock_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:88</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html">gazebo::NubotGazebo</a></div><div class="ttdoc">A basic motions realization in Gazebo. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:70</div></div>
<div class="ttc" id="nubot__PID_8hh_html"><div class="ttname"><a href="nubot__PID_8hh.html">nubot_PID.hh</a></div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ad93752507f23724bba2f731325e4c14b"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ad93752507f23724bba2f731325e4c14b">gazebo::NubotGazebo::nubot_locomotion</a></div><div class="ttdeci">void nubot_locomotion(math::Vector3 linear_vel_vector, math::Vector3 angular_vel_vector)</div><div class="ttdoc">Nubot moving fuction: rotation + translation. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:404</div></div>
<div class="ttc" id="structnubot__common_1_1ShootResponse___html"><div class="ttname"><a href="structnubot__common_1_1ShootResponse__.html">nubot_common::ShootResponse_</a></div><div class="ttdef"><b>Definition:</b> ShootResponse.h:22</div></div>
<div class="ttc" id="structgazebo_1_1model__state_html_a60485b3f1187365afb7fb0105063b4ec"><div class="ttname"><a href="structgazebo_1_1model__state.html#a60485b3f1187365afb7fb0105063b4ec">gazebo::model_state::twist</a></div><div class="ttdeci">Twist twist</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:66</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a727079312e073df8799e1a385ac8da00"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a727079312e073df8799e1a385ac8da00">gazebo::NubotGazebo::dribble_D_</a></div><div class="ttdeci">double dribble_D_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:124</div></div>
<div class="ttc" id="nubot__gazebo_8hh_html_a9f17572284bab3e9bd067a6393a7953ba11f40e487a9654ac3bd15a1463898275"><div class="ttname"><a href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953ba11f40e487a9654ac3bd15a1463898275">CHASE_BALL</a></div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:35</div></div>
<div class="ttc" id="structgazebo_1_1Twist_html_afbb8ffd807cad3c63479f4624b192301"><div class="ttname"><a href="structgazebo_1_1Twist.html#afbb8ffd807cad3c63479f4624b192301">gazebo::Twist::linear</a></div><div class="ttdeci">math::Vector3 linear</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:58</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ac92e4461911d9522f1454978d26ec461"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ac92e4461911d9522f1454978d26ec461">gazebo::NubotGazebo::robot_namespace_</a></div><div class="ttdeci">std::string robot_namespace_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:105</div></div>
<div class="ttc" id="structgazebo_1_1Twist_html"><div class="ttname"><a href="structgazebo_1_1Twist.html">gazebo::Twist</a></div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:56</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ade096537ecc11263f1dd14428325329b"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ade096537ecc11263f1dd14428325329b">gazebo::NubotGazebo::shoot_control_servive</a></div><div class="ttdeci">bool shoot_control_servive(nubot_common::Shoot::Request &amp;req, nubot_common::Shoot::Response &amp;res)</div><div class="ttdoc">Ball shooting service server function. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:380</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a408738f621515f00547b54ed74481127"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a408738f621515f00547b54ed74481127">gazebo::NubotGazebo::dribble_flag_</a></div><div class="ttdeci">bool dribble_flag_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:133</div></div>
<div class="ttc" id="classnubot__gazebo_1_1NubotGazeboConfig_html"><div class="ttname"><a href="classnubot__gazebo_1_1NubotGazeboConfig.html">nubot_gazebo::NubotGazeboConfig</a></div><div class="ttdef"><b>Definition:</b> NubotGazeboConfig.h:26</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a5d3cf2ace05ce1ade8b71d1c6397a7b0"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a5d3cf2ace05ce1ade8b71d1c6397a7b0">gazebo::NubotGazebo::robot_prefix_</a></div><div class="ttdeci">std::string robot_prefix_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:109</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a6f892f9dcb5b46bdd232ffec277dd093"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a6f892f9dcb5b46bdd232ffec277dd093">gazebo::NubotGazebo::reconfigureServer_</a></div><div class="ttdeci">dynamic_reconfigure::Server&lt; nubot_gazebo::NubotGazeboConfig &gt; * reconfigureServer_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:147</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_affe0d982594c738a7ebec3ac1849c01f"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#affe0d982594c738a7ebec3ac1849c01f">gazebo::NubotGazebo::I_term_min_</a></div><div class="ttdeci">double I_term_min_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:126</div></div>
<div class="ttc" id="nubot__gazebo_8hh_html_a9f17572284bab3e9bd067a6393a7953ba8f280224da64e98f2d52d50ec43bc197"><div class="ttname"><a href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953ba8f280224da64e98f2d52d50ec43bc197">HOME</a></div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:39</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a918fab93f4939a8bb06d65a997e20a54"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a918fab93f4939a8bb06d65a997e20a54">gazebo::NubotGazebo::football_chassis_</a></div><div class="ttdeci">std::string football_chassis_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:108</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_aa56e5c10cfbbc981460ab1bcc204d071"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#aa56e5c10cfbbc981460ab1bcc204d071">gazebo::NubotGazebo::world_</a></div><div class="ttdeci">physics::WorldPtr world_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:74</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a5b5d4a3644867257cb379613072e9567"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a5b5d4a3644867257cb379613072e9567">gazebo::NubotGazebo::set_ball_vel</a></div><div class="ttdeci">void set_ball_vel(math::Vector3 &amp;vel, bool &amp;ball_decay_flag)</div><div class="ttdoc">replace football_model_-&gt;SetLinearVel() with a flag to indicate vel decay </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:824</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_ab012e0229172416640558cf2746a0974"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#ab012e0229172416640558cf2746a0974">gazebo::NubotGazebo::dribble_angle_thres_</a></div><div class="ttdeci">double dribble_angle_thres_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:116</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a8366f268f6bba085201123d74b786368"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a8366f268f6bba085201123d74b786368">gazebo::NubotGazebo::get_is_hold_ball</a></div><div class="ttdeci">bool get_is_hold_ball(void)</div><div class="ttdoc">Get the value of flag is_hold_ball_. </div><div class="ttdef"><b>Definition:</b> nubot_gazebo.cc:459</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a385577ffa9cc48440e8047019d6e67f6"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a385577ffa9cc48440e8047019d6e67f6">gazebo::NubotGazebo::desired_rot_vector_</a></div><div class="ttdeci">math::Vector3 desired_rot_vector_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:100</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_af17747304ff9b241fa0642c52923498b"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#af17747304ff9b241fa0642c52923498b">gazebo::NubotGazebo::Vx_cmd_</a></div><div class="ttdeci">double Vx_cmd_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:118</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_afbdb7428487c2f6dec5000bae3d6f5a7"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#afbdb7428487c2f6dec5000bae3d6f5a7">gazebo::NubotGazebo::count_</a></div><div class="ttdeci">int count_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:139</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a5a6b999a205a45e1778e0f4d75e325e0"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a5a6b999a205a45e1778e0f4d75e325e0">gazebo::NubotGazebo::rand_</a></div><div class="ttdeci">math::Rand rand_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:146</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a9e30363181d0a790081ce6d0e9151e6b"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a9e30363181d0a790081ce6d0e9151e6b">gazebo::NubotGazebo::dribble_P_</a></div><div class="ttdeci">double dribble_P_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:122</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a646a80199e35f2f47558b7b7aa27bea4"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a646a80199e35f2f47558b7b7aa27bea4">gazebo::NubotGazebo::dribble_distance_thres_</a></div><div class="ttdeci">double dribble_distance_thres_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:115</div></div>
<div class="ttc" id="nubot__gazebo_8hh_html_a9f17572284bab3e9bd067a6393a7953ba2fc2989f8c52255c003e122db39b885e"><div class="ttname"><a href="nubot__gazebo_8hh.html#a9f17572284bab3e9bd067a6393a7953ba2fc2989f8c52255c003e122db39b885e">KICK_BALL</a></div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:37</div></div>
<div class="ttc" id="classgazebo_1_1NubotGazebo_html_a97a021a147d45134fe79ab21531e55df"><div class="ttname"><a href="classgazebo_1_1NubotGazebo.html#a97a021a147d45134fe79ab21531e55df">gazebo::NubotGazebo::nubot_link_</a></div><div class="ttdeci">physics::LinkPtr nubot_link_</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:78</div></div>
<div class="ttc" id="structgazebo_1_1model__state_html_a22787f252a57adeadc5983b5127c1027"><div class="ttname"><a href="structgazebo_1_1model__state.html#a22787f252a57adeadc5983b5127c1027">gazebo::model_state::reference_frame</a></div><div class="ttdeci">std::string reference_frame</div><div class="ttdef"><b>Definition:</b> nubot_gazebo.hh:67</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 30 2016 00:26:42 for single_nubot_gazebo by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>
